using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;

/// <summary>
/// Summary description for FormularioMovimientoStock
/// </summary>
public class FormularioMovimientoStock
{
	public FormularioMovimientoStock()
	{
		//
		// TODO: Add constructor logic here
		//
	}

    public static void agregarMovimientoStock(int cod_motivo,int cod_autorizador,DateTime fecha)
    {
        SqlConnection conexion = null;

        try
        {
            conexion = Conexion.CrearConexion();
            IDbCommand comando = Conexion.CrearComando(conexion);

            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.CommandText = "[sp_agregar_formulario_movimiento_stock]";
            comando.Parameters.Add(Conexion.CrearParametro("@cod_motivo", cod_motivo));
            comando.Parameters.Add(Conexion.CrearParametro("@cod_autorizador", cod_autorizador));
            comando.Parameters.Add(Conexion.CrearParametro("@fecha", fecha));
            
            comando.ExecuteNonQuery();



        }
        finally
        {
            conexion.Dispose();
        } 
    }
    /*public static SqlDataSource mostrarDetalle()
    {
        SqlConnection conexion = null;

        try
        {
            conexion = Conexion.CrearConexion();
            IDbCommand comando = Conexion.CrearComando(conexion);

            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.CommandText = "[sp_buscar_detalle_formulario_movimiento_stock]";
            IDataReader resultado = comando.ExecuteReader();

            return resultado;


        }
        finally
        {
            conexion.Dispose();
        }
    }*/
    public static void agregarDetalleMovimientoStock(int cod_transferencia,int cantidad,int cod_producto)
    {
        SqlConnection conexion = null;
        int intResultado = cod_transferencia;
        try
        {
            conexion = Conexion.CrearConexion();
            IDbCommand comando = Conexion.CrearComando(conexion);            
            comando.CommandText = "SELECT MAX(cod_transferencia) AS Expr1 FROM Formulario_Movimiento_Stock";            
            IDataReader resultado = comando.ExecuteReader();
            while (resultado.Read())
            {
                intResultado = int.Parse(resultado["Expr1"].ToString());
            }

        }
        finally
        {
            conexion.Dispose();
        }
        
        SqlConnection conexion1 = null;

        try
        {
            conexion1 = Conexion.CrearConexion();
            IDbCommand comando = Conexion.CrearComando(conexion1);

            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.CommandText = "[sp_agregar_detalle_formulario_movimiento_stock]";

            comando.Parameters.Add(Conexion.CrearParametro("@cod_transferencia", intResultado));
            comando.Parameters.Add(Conexion.CrearParametro("@cantidad", cantidad));
            comando.Parameters.Add(Conexion.CrearParametro("@cod_producto", cod_producto));
            comando.ExecuteNonQuery();



        }
        finally
        {
            conexion1.Dispose();
        }
    
    }
    

    public static void modificarDetalle(int nro_renglon,int cantidad,int cod_producto)
    {
        SqlConnection conexion = null;

        try
        {
            conexion = Conexion.CrearConexion();
            IDbCommand comando = Conexion.CrearComando(conexion);
            comando.CommandText = "update Detalles_Formulario_Movimiento_Stock set cantidad=@cantidad,cod_producto = @cod_producto where nro_renglon=@nro_renglon;";
            comando.Parameters.Add(Conexion.CrearParametro("@nro_renglon", nro_renglon));
            comando.Parameters.Add(Conexion.CrearParametro("@cantidad", cantidad));
            comando.Parameters.Add(Conexion.CrearParametro("@cod_producto", cod_producto));
            comando.ExecuteNonQuery();



        }
        finally
        {
            conexion.Dispose();
        }
    }
    public static void borrarDetalle(int nro_renglon)
    {
        SqlConnection conexion = null;
        try
        {
            conexion = Conexion.CrearConexion();
            IDbCommand comando = Conexion.CrearComando(conexion);
            comando.CommandText = "delete from Detalles_Formulario_Movimiento_Stock where nro_renglon = @nro_renglon";
            comando.Parameters.Add(Conexion.CrearParametro("@nro_renglon", nro_renglon));
            comando.ExecuteNonQuery();
        }
        finally
        {
            conexion.Dispose();
        }
    }

}
